//
//  BaiheAdSDKSplashAd.h
//  BaiheAdSDK
//
//  Created by 陈坤 on 2025/9/28.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol BaiheAdSDKSplashAdDelegate;

@interface BaiheAdSDKSplashAd : NSObject

/**
 广告生命周期代理
*/
@property (nonatomic, weak) id<BaiheAdSDKSplashAdDelegate> delegate;

/**
 广告位id
*/
@property (nonatomic, copy) NSString *posId;

/**
 设置广告跳过按钮位置，默认为右下角，只针对channel和zhike渠道
 */
@property (nonatomic, assign) BOOL skipButtonToRightTop;


/// 开屏广告的背景图片, 可以设置背景图片作为开屏加载时的默认背景
@property (nonatomic, strong) UIImage *backgroundImage;

/**
 开屏广告底部视图
 */
@property (nonatomic, strong) UIView *bottomView;

/*
 设置根控制器，用于落地页弹出
 */
@property (nonatomic, weak) UIViewController *controller;

/**
 *  广告是否有效，以下情况会返回NO，建议在展示广告之前判断，否则会影响计费或展示失败
 *  a.广告未拉取成功
 *  b.广告已经曝光过
 *  c.广告过期
 *
 */
- (BOOL)isAdValid;

/**
 请求开屏广告，只拉取不展示
 */
- (void)loadSplashAd;

/**
 展示开屏广告
 */
- (void)showSplashAdInWindow:(UIWindow *)window;

/**
 设置开屏场景信息
 */
- (void)setAdScenes:(NSDictionary *)scenes;

/**
 获取广告的竞价价格，单位分，为0则表示未成功获取到广告，或者不支持竞价，开启该功能需要联系媒介商务
 */
- (NSInteger)getBidPrice;

/**
 发送竞价成功上报
 @param price 赢价价格，单位分
 */
- (void)sendWinNotice:(NSInteger)price;

/**
 发送竞价失败上报
 @param price 赢价价格，单位分
 */
- (void)sendLossNotice:(NSInteger)price;

@end

@protocol BaiheAdSDKSplashAdDelegate <NSObject>

@optional

/**
 开屏广告点击回调, 可能会打开 AppStore, WebView, ThirdApp etc.

 @param splashAd 开屏广告
 */
- (void)Baihe_splashAdDidClick:(BaiheAdSDKSplashAd *)splashAd;

/**
 开屏广告关闭回调, 触发条件: 点击广告, 点击跳过, 超时关闭

 @param splashAd 开屏对象
 */
- (void)Baihe_splashAdDidClose:(BaiheAdSDKSplashAd *)splashAd;

/**
 开屏广告展示回调

 @param splashAd 开屏对象
 */
- (void)Baihe_splashAdExposured:(BaiheAdSDKSplashAd *)splashAd;

/**
 开屏广告加载成功
 
 @param splashAd 开屏对象
 */
- (void)Baihe_splashAdDidLoad:(BaiheAdSDKSplashAd *)splashAd;

/**
 开屏广告加载失败
 
 @param splashAd 开屏对象
 */
- (void)Baihe_splashAdDidFailToLoad:(BaiheAdSDKSplashAd *)splashAd error:(NSError *)error;

/**
 *  开屏广告成功展示
 *
 *  @param splashAd 开屏对象
 */
- (void)Baihe_splashAdSuccessPresentScreen:(BaiheAdSDKSplashAd *)splashAd;

/**
 *  开屏广告展示失败
 *
 *  @param splashAd 开屏对象
 */
- (void)Baihe_splashAdFailToPresent:(BaiheAdSDKSplashAd *)splashAd withError:(NSError *)error;

/**
 *  开屏广告关闭落地页
 *
 *  @param splashAd 开屏对象
 */
- (void)Baihe_splashAdCloseLandingPage:(BaiheAdSDKSplashAd *)splashAd;

@end


NS_ASSUME_NONNULL_END
